package main

import "go-leetcode/leetcode/utils"

// 101. 对称二叉树
func isSymmetric(root *utils.TreeNode) bool {
	if root == nil {
		return true
	}
	return compareSubNode(root.Left, root.Right)
}

func compareSubNode(leftNode, rightNode *utils.TreeNode) bool {
	if leftNode == nil && rightNode == nil {
		return true
	}
	if (leftNode != nil && rightNode == nil) || (leftNode == nil && rightNode != nil) || leftNode.Val != rightNode.Val {
		return false
	}
	return compareSubNode(leftNode.Left, rightNode.Right) && compareSubNode(leftNode.Right, rightNode.Left)
}

// 给你一个二叉树的根节点 root ， 检查它是否轴对称。
//
//示例 1：
//
//输入：root = [1,2,2,3,4,4,3]
//输出：true
//示例 2：
//
//输入：root = [1,2,2,null,3,null,3]
//输出：false
//
//提示：
//
//树中节点数目在范围 [1, 1000] 内
//-100 <= Node.val <= 100
//
//
//进阶：你可以运用递归和迭代两种方法解决这个问题吗？
